


%% computes aggregate redistirbution from policies

% optimal policy
MomentsQO = ComputeMoments( ParamsQO , GridsQO , LQO , LhQO , zetaQO , vQO , GEQO ) ;
DistribQO = AgTaxExp( MomentsQO.tau0 , GridsQO.tax     ,vQO,zetaQO,GridsQO) / AgOutput(vQO,zetaQO,GridsQO) ;

% ZFU
MomentsZ  = ComputeMoments( ParamsZ , GridsZ , LZ , LhZ , zetaZ , vZ , GEZ ) ;
DistribZ  = AgTaxExp( MomentsZ.tau0 , GridsZ.tax     ,vZ,zetaZ,GridsZ) / AgOutput(vZ,zetaZ,GridsZ) ;

% display results
disp(' ')
disp(['Fraction locations in ZFU:                ' num2str(100*sum(Grids.mx(IsInZ)),2) '%' ])
disp(['Redis. from quasi-opt. policy (% of GDP): ' num2str(100*DistribQO,2) '%' ])
disp(['Redis. from ZFU (% of GDP):               ' num2str(100*DistribZ,2) '%' ])
disp(['Labor tax from quasi-opt. policy:         ' num2str(100*MomentsQO.xi,2) '%' ])
disp(['Labor tax from ZFU:                       ' num2str(100*MomentsZ.xi,2) '%' ])
disp(' ')
